In mobile computers such as laptops, the battery and power subsystem often gives time prediction data to the operating system (OS). Such time prediction data can then be forwarded users. This allows the users to find out how much time remaining they have to run before the battery is empty.
Unfortunately, this data is often incorrect, especially when the battery is not new (and ideal), and therefore not behaving as expected. Most BIOS (basic input and output system) and embedded controller (EC) microcode also naively assumes that a battery charges and discharges in a linear way, while the chemistry of certain batteries such as lithium-ion and lithium polymer batteries can be exponential or varied. This affects most modern laptop and netbook computers, which means that the time shown to the users can be wildly inaccurate.
Previous solutions implemented in a power manager such as a gnome-power-manager in Linux listened to the output from the BIOS or EC, and profiled what the battery was reporting, and compared that to the actual measured time that percentage points took to change.
However, this process takes a relative long period of time to complete and has to be performed for each user session (e.g., desktop, login sessions). In the case where four or five people share one laptop, it could be that each user does not maintain enough cycles from 0% to 100% to 0% needed to build up a useful average profile. One immediate way this is shown is when the session gnome-power-manager is shown in a login window, without an accurate time remaining, as nobody ever cycles the power from 100% to 0% on the login screen. It also has the effect of showing different discharge time when switching users, which does not make much sense to a user. It also means that multiple logged in users (in the case of fast user switching) are performing the same data collection and statistics at the same time, which is suboptimal from a power and efficiency point of view.